iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0

今天來將每樣東西上色。

    screen.fill(white)
    pygame.draw.circle(screen, black, (ball_x, ball_y), ball_radius)
    pygame.draw.rect(screen, light_green, paddle_rect)
    for brick in bricks:
        pygame.draw.rect(screen, light_blue, brick)
    pygame.display.flip()

1.背景
程式碼中透過 screen.fill(white) 將遊戲畫面的背景設定為白色。

2.球
使用 pygame.draw.circle 來繪製球。pygame.draw.circle(screen, black, (ball_x, ball_y), ball_radius) 的參數說明如下:

  • screen:指定繪製的螢幕目標,即將球繪製在 screen 上。
  • black:設定球為黑色。
  • (ball_x, ball_y):指定球的圓心座標位置。
  • ball_radius:用來設定球的半徑大小。

3.擋板
使用 pygame.draw.rect(screen, light_green, paddle_rect) 函數,其中 screen 仍然是指螢幕目標,而 light_green 是擋板的顏色。paddle_rect 則是定義擋板形狀及位置的 Rect 物件。這個函數的作用是根據提供的 Rect 物件來繪製一個矩形擋板,方便控制它的長度、寬度及位置。

4.磚塊
使用 for brick in bricks 迴圈來繪製剩餘的磚塊。 bricks 是一個包含多個 Rect 物件的列表(list),每個 Rect 都代表一個磚塊的位置與大小。程式碼透過 pygame.draw.rect(screen, light_blue, brick),將每個磚塊繪製成淺藍色的矩形,形成遊戲中的磚塊牆。這樣的迴圈方式可以靈活地增減磚塊數量,並保持程式碼的可讀性。

5.螢幕
使用 pygame.display.flip() 來更新螢幕顯示。這個函數的作用是將所有在螢幕上繪製的內容(例如球、擋板與磚塊等)同步到實際顯示的螢幕上。當繪製過程完成後,每次執行 pygame.display.flip() 時,螢幕內容都會刷新,呈現最新的遊戲畫面給玩家。這個函數通常在主遊戲迴圈中重複呼叫,以不斷更新畫面,呈現動態效果。

理解這段程式碼不僅能幫助我建立基本的遊戲畫面,更可以為日後開發複雜的遊戲提供良好的基礎。如果要深入學習遊戲設計的話,這段程式碼是熟悉 Pygame 繪圖方式的絕佳範例。之後來有類似作業就能以這段程式碼為基礎去延伸改編。

那今天就先這樣。/images/emoticon/emoticon29.gif


上一篇
碰撞檢測
下一篇
遊戲的開始與結束
系列文
從Python入門到自製遊戲:30天鐵人挑戰之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言